
#include "app.h"
#include "..\bsp\board.h"
#include "..\..\..\src\polsys.h"

static bit mRxFinish;
static u8 mTxByte;

// 事件函数看起来像中断，但是都在主程序态执行，可以执行耗时操作，但可能会拖慢整个软件的运行速度。


// 软件启动事件。软件启动执行一次，函数名由 polsys 确定，不可任意修改。（看成是中断服务函数）
void App_Load()
{
    Board_Init();
    SUart_Init();       // 软串口初始化

    SUart_Enable();     // 使能串口

    // 发2个AA
    SUart_SendByte(0xAA);
    while(SUart_GetTxFlag());
    SUart_SendByte(0xAA);
    while(SUart_GetTxFlag());
}

// SUART（软UART）事件，注意运行在中断中。
void SUart_Event(suart_ev_t e)
{
    if(e == SUART_EV_RX_DONE)
    {
        mTxByte = SUart_GetRxByte() + 1;        // 把收到的字节 +1 发出去
        mRxFinish = true;
    }
}

// 间隔100ms执行一次
void App_Timer()
{
    if(mRxFinish)
    {
        mRxFinish = false;
        SUart_SendByte(mTxByte);            // 把收到的字节 +1 发出去
        while(SUart_GetTxFlag());
    }
}




